package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.system.domain.AirQualityData;

/**
 * 空气质量数据Mapper接口
 */
public interface AirQualityDataMapper 
{
    /**
     * 查询空气质量数据列表
     * 
     * @param airQualityData 空气质量数据
     * @return 空气质量数据集合
     */
    public List<AirQualityData> selectAirQualityDataList(AirQualityData airQualityData);
    
    /**
     * 根据监测点ID查询空气质量数据
     * 
     * @param pointId 监测点ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 空气质量数据集合
     */
    public List<AirQualityData> selectAirQualityDataByPointId(@Param("pointId") Long pointId, @Param("startTime") String startTime, @Param("endTime") String endTime);
    
    /**
     * 查询所有监测点的空气质量数据
     * 
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 空气质量数据集合
     */
    public List<AirQualityData> selectAllAirQualityData(@Param("startTime") String startTime, @Param("endTime") String endTime);
    
    /**
     * 查询各监测点最新的空气质量数据
     * 
     * @return 空气质量数据集合
     */
    public List<AirQualityData> selectLatestAirQualityData();
    
    /**
     * 查询空气质量指数(AQI)的时间变化数据
     * 
     * @param pointId 监测点ID，可为null表示查询所有监测点
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 时间和AQI值的映射集合
     */
    public List<Map<String, Object>> selectAqiTimeData(@Param("pointId") Long pointId, @Param("startTime") String startTime, @Param("endTime") String endTime);
    
    /**
     * 查询各监测点的空气质量分布数据
     * 
     * @return 监测点位置和AQI值的映射集合
     */
    public List<Map<String, Object>> selectAqiDistributionData();
}